import proto from '../proto/ProtoMsgV1_pb.js';
import ProtobufEncoder from '../code/ProtobufEncoder.js';

const P2PMessageBuilder = {
	build: function(appId, sessionId, from, to, contend) {
		// 原消息
		let protoObj = new proto.Message();
		protoObj.setType(proto.HeadType.MESSAGE_REQUEST);
		protoObj.setSequence(1);
		protoObj.setSessionId(sessionId);
		protoObj.setAppId(appId)

		let msgReq = new proto.MessageRequest();
		msgReq.setFrom(from);
		msgReq.setTo(to);
		msgReq.setContent(contend);
		msgReq.setMsgSdkUuid('SDK-' + this.generateUUID());
		protoObj.setMessageRequest(msgReq);

		const encode = ProtobufEncoder.encode(protoObj);

		return encode;
	},

	generateUUID() {
		var s = [];
		var hexDigits = "0123456789abcdef";
		for (var i = 0; i < 36; i++) {
			s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
		}
		s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
		s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
		s[8] = s[13] = s[18] = s[23] = "-";

		var uuid = s.join("");
		return uuid;
	}
}

export default P2PMessageBuilder;